// 导入数据库操作模块
const db = require('../db/index')
const config = require('../config')

// 获取学院列表
exports.getCollegeList = async (req, res) => {
    try {
        const sql = `SELECT * FROM colleges`
        const [results] = await db.query(sql)
        
        // 判断查询结果是否为空
        if (results.length === 0) {
            return res.send({ 
                status: 1, 
                message: '没有学院数据' 
            })
        }

        // 处理返回的数据，将JSON字符串转换回数组
        const colleges = results.map(college => ({
            ...college,
            majors: college.majors// 将JSON字符串转换为数组
        }))

        // 查询成功
        res.send({ 
            status: 0, 
            message: '获取学院列表成功', 
            data: colleges 
        })
    } catch (error) {
        console.error('获取学院列表错误:', error)
        res.status(500).send({ 
            status: 1, 
            message: '服务器错误' 
        })
    }
}

// 添加学院
exports.addCollege_handler = async (req, res) => {
    try {
        const collegeinfo = req.body
        
        // 处理专业数组
        let majors = collegeinfo.majors || []
        
        // 数据验证
        if (!collegeinfo.name || !collegeinfo.college_id) {
            return res.send({ 
                status: 1, 
                message: '学院名称或学院代码不能为空' 
            })
        }
        
        // 检查学院名称是否已存在
        const [existingColleges] = await db.query(
            'SELECT * FROM colleges WHERE name = ?', 
            [collegeinfo.name]
        )
        
        if (existingColleges.length > 0) {
            return res.send({ 
                status: 1, 
                message: '学院名称已存在，请更换其他名称' 
            })
        }

        // 构造插入数据，将数组转换为 JSON 字符串
        const insertData = {
            name: collegeinfo.name,
            college_id: collegeinfo.college_id,
            majors: JSON.stringify(majors) // 将数组转换为 JSON 字符串
        }
        
        // 执行插入操作
        const [result] = await db.query(
            'INSERT INTO colleges SET ?', 
            [insertData]
        )

        if (result.affectedRows !== 1) {
            return res.send({ 
                status: 1, 
                message: '添加学院失败，请稍后再试' 
            })
        }

        res.send({ 
            status: 0, 
            message: '添加学院成功',
            data: {
                id: result.insertId,
                name: insertData.name,
                college_id: insertData.college_id,
                majors: majors // 返回原始数组
            }
        })

    } catch (error) {
        console.error('添加学院错误:', error)
        res.status(500).send({ 
            status: 1, 
            message: '服务器错误' 
        })
    }
}